package cn.com.dcsgo.service;

import cn.com.dcsgo.domain.IndexImg;
import cn.com.dcsgo.dto.IndexImgAddDTO;
import cn.com.dcsgo.dto.IndexImgQueryDTO;
import cn.com.dcsgo.dto.IndexImgUpdateDTO;
import cn.com.dcsgo.dto.PageDTO;
import cn.com.dcsgo.vo.IndexImgVO;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;

/**
 * 针对表【index_img(主页轮播图)】的数据库操作Service
 *
 * @author Dcsgo
 * @since 2025-10-26 13:09:56
 */
public interface IndexImgService extends IService<IndexImg> {

    /**
     * 分页获取轮播图信息
     *
     * @param pageDTO          分页参数
     * @param indexImgQueryDTO 查询参数
     * @return 分页数据，轮播图信息按排序数逆序排序
     */
    Page<IndexImg> getPage(PageDTO pageDTO, IndexImgQueryDTO indexImgQueryDTO);

    /**
     * 添加轮播图，状态默认为正常
     *
     * @param indexImgAddDTO 轮播图信息
     * @return true-添加成功，false-添加失败
     */
    boolean save(IndexImgAddDTO indexImgAddDTO);

    /**
     * 获取轮播图信息
     *
     * @param imgId 轮播图ID
     * @return 播图信息
     */
    IndexImgVO getIndexImgVOById(Long imgId);

    /**
     * 获取超级店铺轮播图
     */
    List<IndexImg> getSupperIndexImg();

    /**
     * 修改轮播图信息
     *
     * @param indexImgUpdateDTO 轮播图信息
     * @return ture-修改成功，false-修改失败
     */
    boolean updateById(IndexImgUpdateDTO indexImgUpdateDTO);

    /**
     * 删除轮播图，支持批量删除（重写MP方法，清Redis缓存）
     *
     * @param imgIds 轮播图Id
     * @return ture-删除成功，false-删除失败
     */
    boolean removeBatchByIds(List<Long> imgIds);
}
